package com.fjwt.gz.db.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.fjwt.gz.core.model.BaseModel;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 活动公众号渠道表
 * </p>
 *
 * @author shiyonghao
 * @since 2025-04-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_a_activity_channel")
public class ActivityChannelEntity extends BaseModel {

    public static LambdaQueryWrapper<ActivityChannelEntity> gw(){
        return new LambdaQueryWrapper<>();
    }

    /**
     * 主键
     */
    @TableId(value = "activity_channel_id", type = IdType.AUTO)
    private Long activityChannelId;

    /**
     * 微信公众号appid
     */
    private String appId;

    /**
     * 渠道码(根据channel_type判断  0：网点号-员工编号 1：机构号-商户号 2：机构号 3：网点号-自建渠道号)
     */
    private String channelCode;

    /**
     * 渠道类型（0：机构员工，1：商户，2：机构网点  3：自建渠道）
     */
    private Integer channelType;

    /**
     * 渠道名称
     */
    private String channelName;

    /**
     * 获取的二维码ticket，凭借此ticket可以在有效时间内换取二维码
     */
    private String ticket;

    /**
     * 该二维码过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date expireTime;

    /**
     * 二维码图片解析后的地址，开发者可根据该地址自行生成需要的二维码图片
     */
    private String url;

    /**
     * oss记录ID
     */
    private Long ossRecordId;

    /**
     * 是否删除 0否 1是，默认0
     */
    private Integer isDeleted;

    /**
     * 当channel_type=1时，是否开启距离限制，0否 1是，默认1
     */
    private Integer isDistanceLimit;

    /**
     * 当channel_type=1时，距离限制; 商家处的活动渠道码（默认：根据归属机构号查距离网点100米内不能参与活动）
     */
    private Float distanceLimit;

    /**
     * 备注（自建渠道码存经纬度和地址）
     */
    private String remark;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateAt;


}
